Virtual machine migration is the process of moving a virtual machine from one physical host to another. Virtual machine migration may be performed for a number of reasons, e.g., change in workload, server maintenance, faulty server, disaster recovery, etc. Live migration may be performed by pausing the virtual machine, copying all the memory states associated with the virtual machine from a source host to a target host, and resuming the virtual machine. One method to reduce the amount of time the virtual machine is paused is by pre-copying as much of the memory states as possible while the virtual machine is still running on the source host.